package com.wdz.category.service;

import com.wdz.article.entity.Article;
import com.wdz.category.entity.Category;
import com.baomidou.mybatisplus.service.IService;
import com.wdz.category.entity.CategoryOTM;
import com.wdz.resource.entity.Resource;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 分类表 服务类
 * </p>
 *
 * @author 吴传逞
 * @since 2020-12-14
 */
public interface ICategoryService extends IService<Category> {

    /**
     * 一对多查询三层分类
     * @return
     */
    List<CategoryOTM> seleteCategorysByOTM();

    /**
     * 根据栏目id获取该栏目下面的文章数量前五的一级分类
     * @param id 栏目id
     * @return 返回map对象
     */
    List<Map<Object,Object>> selectCategorysByArticleCount(String id);
    /**
     * 根据分类id获取该分类下面点赞数排名前3的文章图片
     * @param id 分类id
     * @return 返回String集合对象
     */
    List<String> selectCategoryImagesById(String id);
    /**
     * 根据分类id获取该分类下的文章总数
     * @param id 分类id
     * @return 返回数量
     */
    Integer selectCategoryLengthById(String id);
    /**
     * 根据分类id获取该分类下面点赞数排名前5的文章
     * @param id 分类id
     * @return 返回结果集合
     */
    List<Article> selectCategoryArticlesById(@Param("id") String id);
    /**
     * 根据分类id获取该分类下面的分类
     * @param id 分类id
     * @return 返回结果集合
     */
    List<Category> selectCategorysById(String id,Integer pageNo,Integer pageSize);
    /**
     * 根据分类id获取该分类下面所有的文章
     * @param id 分类集合
     * @return 返回结果集合
     */
    List<Article> selectAllArticlesById(String id,Integer pageNo,Integer pageSize);
    /**
     * 根据分类id获取该分类下面所有的资源
     * @param id 分类集合
     * @return 返回结果集合
     */
    List<Resource> selectAllResourcesById(String id,Integer pageNo,Integer pageSize);

}
